package com.ls.lserp.modules.order.dao;

import java.util.List;

import com.ls.lserp.common.persistence.CrudDao;
import com.ls.lserp.common.persistence.annotation.MyBatisDao;
import com.ls.lserp.modules.order.entity.AuditInfo;
import com.ls.lserp.modules.order.entity.SpecimenProduction;


/**
  * @ClassName: SpecimenProductionDao
  * @Description: 分类接口
  * 
  * @author 
  * @date 2017年02月10日 
  *
  */

@MyBatisDao
public interface SpecimenProductionDao extends CrudDao<SpecimenProduction> {
	
	/**
	  * @Title: getAuditInfo
	  * @Description: 
	  * @param @param specimenProduction
	  * @param @return
	  * @return specimenProduction 
	  * @throws
	  */
	public SpecimenProduction getAuditInfo(SpecimenProduction specimenProduction);
	
	/**
	  * @Title: specimenProduction
	  * @Description: 更新样品需求备注和需求单状态
	  * @param @param specimenProduction
	  * @param @return
	  * @return int 
	  * @throws
	  */
	public int updateSampleRemark(SpecimenProduction specimenProduction);
	
	/**
	  * @Title: findSampleAuditResultList
	  * @Description: 所有样品需求单审核状态
	  * @param @param sampleId
	  * @param @return
	  * @return List<AuditInfo> 
	  * @throws
	  */
	public List<AuditInfo> findSampleAuditResultList(AuditInfo auditInfo);
	
	/**
	  * @Title: updateProductionStatus
	  * @Description: 更新样品生产状态
	  * @param @param auditInfo
	  * @param @return
	  * @return int 
	  * @throws
	  */
	public int updateProductionStatus(AuditInfo auditInfo);
	
	/**
	  * @Title: updateSampleRequestStatus
	  * @Description: 更新样品需求单状态
	  * @param @param auditInfo
	  * @param @return
	  * @return int 
	  * @throws
	  */
	public int updateSampleRequestStatus(AuditInfo auditInfo);
	

	/**
     * 通过需求单号取出样品金额信息
     * @param findCostList
     * @return List<SpecimenProduction> 
     */
    public List<SpecimenProduction> findCostList(long id);
    
	/**
     * 查找需求单下的所有样品数
     * @param findAllProductionCount
     * @return int 
     */
    public int findProductionCount(long id);
    
	/**
     * 取得所有物料价格
     * @param findMaterialCostList
     * @return List 
     */
    public List<SpecimenProduction> findMaterialCostList(SpecimenProduction specimenProduction);
    
    /**
     * 插入样品生产和文件关联表
     * @param insertSampleSizeFile
     * @return int 
     */
    public int insertSampleSizeFile(long id,long fileId);
    
    /**
     * 通过样品生产ID获取款式ID
     * @param getStyleIDBySizeID
     * @return int 
     */
    public long getStyleIDBySizeID(SpecimenProduction specimenProduction);
    
    /**
     * 通过样品生产ID获取款式ID
     * @param getStyleIDBySizeID
     * @return int 
     */
    public long getTaskNumberByMakeUserId(Long loginUserId);
    
    /**
     * 通过样品生产ID获取款式ID
     * @param getStyleIDBySizeID
     * @return int 
     */
    public long getTaskNumberBySamUserId(Long loginUserId);
    
}
